Various software testing tools have been developed to find an optimal system configuration for a software system. Conventionally, the goal of the software testing tool is to predict which of several system configurations will best meet the goal of the software system. With a complex software system, the range of possible configuration is large and the search for the best configuration may be time consuming and expensive.
A knowledge-based methodology has been utilized by software testing tools to minimize search efforts for the optimal system configuration. The software testing tool runs tests on a software system with various profiling data to determine an optimal solution for the software system. The tested results (optimal solutions) are classified according to the profiling data of the software system and stored in a knowledge base. The knowledge bases often comprise optimal configuration parameter sets for software systems so that the software testing tool can utilize the knowledge base to look up which parameter set worked best for a software system in the past. Generally, the utilization of the knowledge base reduces time and expense to run redundant tests on a software system.
Sometimes a new software system may be classified to use a predetermined configuration parameter set provided by the knowledge base, but the predetermined configuration parameter set may not be the optimal solution for the new software system configuration. In such a case, the knowledge base may need to be further defined to properly classify the new software. Often times, a full test with all possible system configurations on the new software system is unavoidable, a full test being time consuming and expensive.
Therefore, it would be desirable to provide a method and system for minimizing the number of possible solutions for a search of an optimal system configuration of new software.